RNA-Seq: ORA analysis for clusters
RNA-Seq: ORA analysis for clusters
Libraries required
Data
Clusters
load("./input/kmeans_sort_heatmaps_all_dge.RData")
mat <- mat.sort.clust[[4]]
kmeans.new <- kmeans[[4]]$cluster
kmeans.new <- kmeans.new[rownames(mat)]
kmeans.new <- c(
kmeans.new[kmeans.new == 5],
kmeans.new[kmeans.new == 3],
kmeans.new[kmeans.new == 1],
kmeans.new[kmeans.new == 2],
kmeans.new[kmeans.new == 4]
)
genes.cluster <- split(x = names(kmeans.new), f = kmeans.new)
names(genes.cluster) <- paste0("cluster", names(genes.cluster))Universe
Now, we have loaded genes cluster information.
Databases
Gene Ontology:
Gene Ontology(GO) is a directed acyclic graph structure that defines biological functions and their relationships to one another. The GO annotations, accompanied by evidence-based statements describe specific gene product and specific ontology term (biological function) relationship. The GO has three major subontologies - Molecular Functions (MF) that describe gene product’s functions; Biological Process (BP) that describe in which biological process the gene product participates; and Cellular Component (CC) that describe in which part of the cell the particular gene product is physically located.
Biological Pathway databases Reactome, KEGG and WikiPathways. Reactome pathways are centrally curated by selected domain experts. KEGG pathways are a mixture of species specific curation and orthologous knowlege mapping between species. WikiPathways is a community driven platform where pathways are curated by anyone interested.
Regulatory motifs in DNA Transfac putative transcription factor binding sites (TFBSs) from TRANSFAC database are retrieved into g:GOSt through a special prediction pipeline. First, TFBSs are found by matching TRANSFAC position specific matrices using the program Match on range +/-1kb from TSS as provided by APPRIS (Annotating principal splice isoforms) via Ensembl biomart. For genes with multiple primary TSS annotations we selected one with most TF matches. The matching range for C. elegans, D. melanogaster and S. cerevisiae is 1kb upstream from ATG (translation start site). A cut-off value to minimize the number of false positive matches (provided by TRANSFAC) is then applied to remove spurious motifs. Remaining matches are split into two inclusive groups based on the amount of matches, i.e TFBSs that have at least 1 match are classified as match class 0 and TFBSs that have at least 2 matches per gene are classified as match class 1.
mirTarBase is a database that holds experimentally validated information about genes that are targetted by miRNAs. We include all the organisms that are covered by mirTarBase.
Protein databases CORUM is a database of manually annotated protein complexes from mammalian organisms. Includes gene annotations for all CORUM protein complexes in human, mouse and rat.
Human Phonotype Ontology Gene annotations from the Human Phenotype Ontology (HPO), a standardized vocabulary of phenotypic abnormalities encountered in human disease. Due to ethical constraints, a significant portion of research on human disease is conducted in model organisms like mouse and rat. However HPO only provides annotations to human genes at the time. To complement HPO annotations of human genes, we have extended their gene database to genes of other organisms in g:Profiler using gene orthology information from Ensembl. As a result, researchers can directly see enrichments of human disease associations in their gene lists of model organisms.
Read gmt files from gProfileR
Function to read gmt files
readGMT <- function(file) {
if (!grepl("\\.gmt$", file)[1]) {
stop("Pathway information must be a .gmt file")
}
geneSetDB <- readLines(file)
geneSetDB <- strsplit(geneSetDB, "\t")
n1 <- sapply(geneSetDB, "[", 1)
n2 <- sapply(geneSetDB, "[", 2)
names(geneSetDB) <- paste(n1, n2, sep = "::")
geneSetDB <- lapply(geneSetDB, "[", -1:-2)
geneSetDB <- lapply(geneSetDB, function(x) {
x[which(x != "")]
})
return(geneSetDB)
}Read gmt files
Pathways for clusterProfiler
pathways.cp <- lapply(pathways, function(x) {
df <- ldply(x, data.frame)
df$TERM <- sub("\\::.*", "", df[, 1])
df$NAME <- sub(".*\\::", "", df[, 1])
df$GENE <- df[, 2]
df <- df[, -1:-2]
res <- list(TERM2GENE = df[, c("TERM", "GENE")], TERM2NAME = df[, c("TERM", "NAME")])
res$TERM2NAME <- res$TERM2NAME[!duplicated(res$TERM2NAME), ]
return(res)
})Pathway analysis
clusterProfiler
ORA analysis
Adding Ontology information
Similarity based correction (GO)
ont <- c("BP", "CC", "MF")
sim <- sapply(ont, function(x)
godata(OrgDb = org.Mm.eg.db, keytype = "SYMBOL", ont = x, computeIC = T))
GO <- lapply(cp.analysis.ont, function(x) x[grep(pattern = "GO", x = names(x))])
GO.IC <- lapply(GO, function(x) {
for (i in 1:length(x)) {
a <- names(x)[i]
a <- sub(".*\\:", "", a)
x[[i]] <- simplify(x[[i]], measure = "Resnik", semData = sim[[a]])
}
return(x)
})Graph based correction (GO)
GOseq (GO)
len <- anno[, c("symbol", "size")]
rownames(len) <- NULL
len <- len[!duplicated(len), ]
len <- len[complete.cases(len), ]
len.sp <- split(x = len, f = len$symbol)
len <- lapply(len.sp, function(x) {
r <- NULL
if (nrow(x) == 1) {
r <- x
} else {
a <- x[1, ]
a[, 2] <- mean(x[, 2])
}
return(r)
})
len <- ldply(len, data.frame)[, -1]
rownames(len) <- len$symbol
df <- data.frame(Genes = universe)
rownames(df) <- df$Genes
df$length <- len[rownames(df), 2]
df$cluster1 <- df$cluster2 <- df$cluster3 <- df$cluster4 <- df$cluster5 <- 0
df[genes.cluster$cluster1, ]$cluster1 <- 1
df[genes.cluster$cluster2, ]$cluster2 <- 1
df[genes.cluster$cluster3, ]$cluster3 <- 1
df[genes.cluster$cluster4, ]$cluster4 <- 1
df[genes.cluster$cluster5, ]$cluster5 <- 1
df <- df[, order(colnames(df))]
goseq.res <- list()
for (i in 1:5) {
n <- colnames(df)[i]
g <- df[, n]
names(g) <- rownames(df)
pwf <- nullp(DEgenes = g, bias.data = as.numeric(df$length), plot.fit = F)
res1 <- goseq(pwf = pwf, genome = "mm10", id = "geneSymbol", method = "Wallenius", test.cats = c("GO:BP"))
res2 <- goseq(pwf = pwf, genome = "mm10", id = "geneSymbol", method = "Wallenius", test.cats = c("GO:CC"))
res3 <- goseq(pwf = pwf, genome = "mm10", id = "geneSymbol", method = "Wallenius", test.cats = c("GO:MF"))
res1$p.adj.over <- p.adjust(res1$over_represented_pvalue, method = "BH")
res1$p.adj.under <- p.adjust(res1$under_represented_pvalue, method = "BH")
res2$p.adj.over <- p.adjust(res2$over_represented_pvalue, method = "BH")
res2$p.adj.under <- p.adjust(res2$under_represented_pvalue, method = "BH")
res3$p.adj.over <- p.adjust(res3$over_represented_pvalue, method = "BH")
res3$p.adj.under <- p.adjust(res3$under_represented_pvalue, method = "BH")
goseq.res[[i]] <- list(`GO:BP` = res1, `GO:CC` = res2, `GO:MF` = res3)
names(goseq.res)[i] <- n
}## Warning in pcls(G): initial point very close to some inequality constraints
## Fetching GO annotations...
## Warning in goseq(pwf = pwf, genome = "mm10", id = "geneSymbol", method =
## "Wallenius", : Missing length data for 56% of genes. Accuarcy of GO test
## will be reduced.
## For 33813 genes, we could not find any categories. These genes will be excluded.
## To force their use, please run with use_genes_without_cat=TRUE (see documentation).
## This was the default behavior for version 1.15.1 and earlier.
## Calculating the p-values...
## 'select()' returned 1:1 mapping between keys and columns
## Fetching GO annotations...
## Warning in goseq(pwf = pwf, genome = "mm10", id = "geneSymbol", method =
## "Wallenius", : Missing length data for 56% of genes. Accuarcy of GO test
## will be reduced.
## For 33813 genes, we could not find any categories. These genes will be excluded.
## To force their use, please run with use_genes_without_cat=TRUE (see documentation).
## This was the default behavior for version 1.15.1 and earlier.
## Calculating the p-values...
## 'select()' returned 1:1 mapping between keys and columns
## Fetching GO annotations...
## Warning in goseq(pwf = pwf, genome = "mm10", id = "geneSymbol", method =
## "Wallenius", : Missing length data for 56% of genes. Accuarcy of GO test
## will be reduced.
## For 33813 genes, we could not find any categories. These genes will be excluded.
## To force their use, please run with use_genes_without_cat=TRUE (see documentation).
## This was the default behavior for version 1.15.1 and earlier.
## Calculating the p-values...
## 'select()' returned 1:1 mapping between keys and columns
## Fetching GO annotations...
## Warning in goseq(pwf = pwf, genome = "mm10", id = "geneSymbol", method =
## "Wallenius", : Missing length data for 56% of genes. Accuarcy of GO test
## will be reduced.
## For 33813 genes, we could not find any categories. These genes will be excluded.
## To force their use, please run with use_genes_without_cat=TRUE (see documentation).
## This was the default behavior for version 1.15.1 and earlier.
## Calculating the p-values...
## 'select()' returned 1:1 mapping between keys and columns
## Fetching GO annotations...
## Warning in goseq(pwf = pwf, genome = "mm10", id = "geneSymbol", method =
## "Wallenius", : Missing length data for 56% of genes. Accuarcy of GO test
## will be reduced.
## For 33813 genes, we could not find any categories. These genes will be excluded.
## To force their use, please run with use_genes_without_cat=TRUE (see documentation).
## This was the default behavior for version 1.15.1 and earlier.
## Calculating the p-values...
## 'select()' returned 1:1 mapping between keys and columns
## Fetching GO annotations...
## Warning in goseq(pwf = pwf, genome = "mm10", id = "geneSymbol", method =
## "Wallenius", : Missing length data for 56% of genes. Accuarcy of GO test
## will be reduced.
## For 33813 genes, we could not find any categories. These genes will be excluded.
## To force their use, please run with use_genes_without_cat=TRUE (see documentation).
## This was the default behavior for version 1.15.1 and earlier.
## Calculating the p-values...
## 'select()' returned 1:1 mapping between keys and columns
## Warning in pcls(G): initial point very close to some inequality constraints
## Fetching GO annotations...
## Warning in goseq(pwf = pwf, genome = "mm10", id = "geneSymbol", method =
## "Wallenius", : Missing length data for 56% of genes. Accuarcy of GO test
## will be reduced.
## For 33813 genes, we could not find any categories. These genes will be excluded.
## To force their use, please run with use_genes_without_cat=TRUE (see documentation).
## This was the default behavior for version 1.15.1 and earlier.
## Calculating the p-values...
## 'select()' returned 1:1 mapping between keys and columns
## Fetching GO annotations...
## Warning in goseq(pwf = pwf, genome = "mm10", id = "geneSymbol", method =
## "Wallenius", : Missing length data for 56% of genes. Accuarcy of GO test
## will be reduced.
## For 33813 genes, we could not find any categories. These genes will be excluded.
## To force their use, please run with use_genes_without_cat=TRUE (see documentation).
## This was the default behavior for version 1.15.1 and earlier.
## Calculating the p-values...
## 'select()' returned 1:1 mapping between keys and columns
## Fetching GO annotations...
## Warning in goseq(pwf = pwf, genome = "mm10", id = "geneSymbol", method =
## "Wallenius", : Missing length data for 56% of genes. Accuarcy of GO test
## will be reduced.
## For 33813 genes, we could not find any categories. These genes will be excluded.
## To force their use, please run with use_genes_without_cat=TRUE (see documentation).
## This was the default behavior for version 1.15.1 and earlier.
## Calculating the p-values...
## 'select()' returned 1:1 mapping between keys and columns
## Fetching GO annotations...
## Warning in goseq(pwf = pwf, genome = "mm10", id = "geneSymbol", method =
## "Wallenius", : Missing length data for 56% of genes. Accuarcy of GO test
## will be reduced.
## For 33813 genes, we could not find any categories. These genes will be excluded.
## To force their use, please run with use_genes_without_cat=TRUE (see documentation).
## This was the default behavior for version 1.15.1 and earlier.
## Calculating the p-values...
## 'select()' returned 1:1 mapping between keys and columns
## Fetching GO annotations...
## Warning in goseq(pwf = pwf, genome = "mm10", id = "geneSymbol", method =
## "Wallenius", : Missing length data for 56% of genes. Accuarcy of GO test
## will be reduced.
## For 33813 genes, we could not find any categories. These genes will be excluded.
## To force their use, please run with use_genes_without_cat=TRUE (see documentation).
## This was the default behavior for version 1.15.1 and earlier.
## Calculating the p-values...
## 'select()' returned 1:1 mapping between keys and columns
## Fetching GO annotations...
## Warning in goseq(pwf = pwf, genome = "mm10", id = "geneSymbol", method =
## "Wallenius", : Missing length data for 56% of genes. Accuarcy of GO test
## will be reduced.
## For 33813 genes, we could not find any categories. These genes will be excluded.
## To force their use, please run with use_genes_without_cat=TRUE (see documentation).
## This was the default behavior for version 1.15.1 and earlier.
## Calculating the p-values...
## 'select()' returned 1:1 mapping between keys and columns
## Warning in pcls(G): initial point very close to some inequality constraints
## Fetching GO annotations...
## Warning in goseq(pwf = pwf, genome = "mm10", id = "geneSymbol", method =
## "Wallenius", : Missing length data for 56% of genes. Accuarcy of GO test
## will be reduced.
## For 33813 genes, we could not find any categories. These genes will be excluded.
## To force their use, please run with use_genes_without_cat=TRUE (see documentation).
## This was the default behavior for version 1.15.1 and earlier.
## Calculating the p-values...
## 'select()' returned 1:1 mapping between keys and columns
## Fetching GO annotations...
## Warning in goseq(pwf = pwf, genome = "mm10", id = "geneSymbol", method =
## "Wallenius", : Missing length data for 56% of genes. Accuarcy of GO test
## will be reduced.
## For 33813 genes, we could not find any categories. These genes will be excluded.
## To force their use, please run with use_genes_without_cat=TRUE (see documentation).
## This was the default behavior for version 1.15.1 and earlier.
## Calculating the p-values...
## 'select()' returned 1:1 mapping between keys and columns
## Fetching GO annotations...
## Warning in goseq(pwf = pwf, genome = "mm10", id = "geneSymbol", method =
## "Wallenius", : Missing length data for 56% of genes. Accuarcy of GO test
## will be reduced.
## For 33813 genes, we could not find any categories. These genes will be excluded.
## To force their use, please run with use_genes_without_cat=TRUE (see documentation).
## This was the default behavior for version 1.15.1 and earlier.
## Calculating the p-values...
## 'select()' returned 1:1 mapping between keys and columns
gProfileR (TF)
Function to show tables
Results together
GO.IC <- lapply(GO.IC, function(x) {
names(x) <- paste(names(x), "(IC)")
return(x)
})
GO.graph <- lapply(GO.graph, function(x) {
names(x) <- paste(names(x), "(Graph)")
return(x)
})
goseq.res <- lapply(goseq.res, function(x) {
names(x) <- paste(names(x), "(GOseq)")
return(x)
})
res <- cp.analysis.ont
for (i in 1:length(res)) {
n <- names(res)[i]
res[[n]]$TF <- gostres[[n]]$result
}
res1 <- lapply(res, function(x) x[grep(pattern = "GO", x = names(x), invert = T)])
res2 <- lapply(res, function(x) x[grep(pattern = "GO", x = names(x))])
cluster1 <- res1[["cluster1"]]
cluster2 <- res1[["cluster2"]]
cluster3 <- res1[["cluster3"]]
cluster4 <- res1[["cluster4"]]
cluster5 <- res1[["cluster5"]]
names(cluster1) <- names(cluster1)[order(names(cluster1))]
names(cluster2) <- names(cluster2)[order(names(cluster2))]
names(cluster3) <- names(cluster3)[order(names(cluster3))]
names(cluster4) <- names(cluster4)[order(names(cluster4))]
names(cluster5) <- names(cluster5)[order(names(cluster5))]
res2 <- lapply(res2, function(x) lapply(x, data.frame))
GO.IC <- lapply(GO.IC, function(x) lapply(x, data.frame))
GO.graph <- lapply(GO.graph, function(x) lapply(x, data.frame))
cluster1.go <- c(res2[["cluster1"]], goseq.res[["cluster1"]], GO.IC[["cluster1"]], GO.graph[["cluster1"]])
cluster2.go <- c(res2[["cluster2"]], goseq.res[["cluster2"]], GO.IC[["cluster2"]], GO.graph[["cluster2"]])
cluster3.go <- c(res2[["cluster3"]], goseq.res[["cluster3"]], GO.IC[["cluster3"]], GO.graph[["cluster3"]])
cluster4.go <- c(res2[["cluster4"]], goseq.res[["cluster4"]], GO.IC[["cluster4"]], GO.graph[["cluster4"]])
cluster5.go <- c(res2[["cluster5"]], goseq.res[["cluster5"]], GO.IC[["cluster5"]], GO.graph[["cluster5"]])
names(cluster1.go) <- names(cluster1.go)[order(names(cluster1.go))]
names(cluster2.go) <- names(cluster2.go)[order(names(cluster2.go))]
names(cluster3.go) <- names(cluster3.go)[order(names(cluster3.go))]
names(cluster4.go) <- names(cluster4.go)[order(names(cluster4.go))]
names(cluster5.go) <- names(cluster5.go)[order(names(cluster5.go))]Pathways (without GO)
Cluster1
for (i in 1:length(cluster1)) {
cat("###", names(cluster1)[i], "\n\n")
print(htmltools::tagList(showDT(data.frame(cluster1[[i]]))))
cat("\n\n")
}CORUM
HP
MIRNA
REAC
TF
WP
## Warning in instance$preRenderHook(instance): It seems your data is too
## big for client-side DataTables. You may consider server-side processing:
## https://rstudio.github.io/DT/server.html
Cluster2
for (i in 1:length(cluster2)) {
cat("###", names(cluster2)[i], "\n\n")
print(htmltools::tagList(showDT(data.frame(cluster2[[i]]))))
cat("\n\n")
}CORUM
HP
MIRNA
REAC
TF
WP
## Warning in instance$preRenderHook(instance): It seems your data is too
## big for client-side DataTables. You may consider server-side processing:
## https://rstudio.github.io/DT/server.html
Cluster3
for (i in 1:length(cluster3)) {
cat("###", names(cluster3)[i], "\n\n")
print(htmltools::tagList(showDT(data.frame(cluster3[[i]]))))
cat("\n\n")
}CORUM
HP
MIRNA
REAC
TF
WP
## Warning in instance$preRenderHook(instance): It seems your data is too
## big for client-side DataTables. You may consider server-side processing:
## https://rstudio.github.io/DT/server.html
Cluster4
for (i in 1:length(cluster4)) {
cat("###", names(cluster4)[i], "\n\n")
print(htmltools::tagList(showDT(data.frame(cluster4[[i]]))))
cat("\n\n")
}CORUM
HP
MIRNA
REAC
TF
WP
## Warning in instance$preRenderHook(instance): It seems your data is too
## big for client-side DataTables. You may consider server-side processing:
## https://rstudio.github.io/DT/server.html
Cluster5
for (i in 1:length(cluster5)) {
cat("###", names(cluster5)[i], "\n\n")
print(htmltools::tagList(showDT(data.frame(cluster5[[i]]))))
cat("\n\n")
}CORUM
HP
MIRNA
REAC
TF
WP
## Warning in instance$preRenderHook(instance): It seems your data is too
## big for client-side DataTables. You may consider server-side processing:
## https://rstudio.github.io/DT/server.html
Gene Ontology
Cluster1
for (i in 1:length(cluster1.go)) {
cat("###", names(cluster1.go)[i], "\n\n")
print(htmltools::tagList(showDT(data.frame(cluster1.go[[i]]))))
cat("\n\n")
}GO:BP (GOseq)
GO:BP (Graph)
GO:BP (IC)
## Warning in instance$preRenderHook(instance): It seems your data is too
## big for client-side DataTables. You may consider server-side processing:
## https://rstudio.github.io/DT/server.html
GO:CC (GOseq)
GO:CC (Graph)
GO:CC (IC)
GO:MF (GOseq)
GO:MF (Graph)
Cluster2
for (i in 1:length(cluster2.go)) {
cat("###", names(cluster2.go)[i], "\n\n")
print(htmltools::tagList(showDT(data.frame(cluster2.go[[i]]))))
cat("\n\n")
}GO:BP (GOseq)
GO:BP (Graph)
GO:BP (IC)
## Warning in instance$preRenderHook(instance): It seems your data is too
## big for client-side DataTables. You may consider server-side processing:
## https://rstudio.github.io/DT/server.html
GO:CC (GOseq)
GO:CC (Graph)
GO:CC (IC)
GO:MF (GOseq)
GO:MF (Graph)
Cluster3
for (i in 1:length(cluster3.go)) {
cat("###", names(cluster3.go)[i], "\n\n")
print(htmltools::tagList(showDT(data.frame(cluster3.go[[i]]))))
cat("\n\n")
}GO:BP (GOseq)
GO:BP (Graph)
GO:BP (IC)
## Warning in instance$preRenderHook(instance): It seems your data is too
## big for client-side DataTables. You may consider server-side processing:
## https://rstudio.github.io/DT/server.html
GO:CC (GOseq)
GO:CC (Graph)
GO:CC (IC)
GO:MF (GOseq)
GO:MF (Graph)
Cluster4
for (i in 1:length(cluster4.go)) {
cat("###", names(cluster4.go)[i], "\n\n")
print(htmltools::tagList(showDT(data.frame(cluster4.go[[i]]))))
cat("\n\n")
}GO:BP (GOseq)
GO:BP (Graph)
GO:BP (IC)
## Warning in instance$preRenderHook(instance): It seems your data is too
## big for client-side DataTables. You may consider server-side processing:
## https://rstudio.github.io/DT/server.html
GO:CC (GOseq)
GO:CC (Graph)
GO:CC (IC)
GO:MF (GOseq)
GO:MF (Graph)
Cluster5
for (i in 1:length(cluster5.go)) {
cat("###", names(cluster5.go)[i], "\n\n")
print(htmltools::tagList(showDT(data.frame(cluster5.go[[i]]))))
cat("\n\n")
}GO:BP (GOseq)
GO:BP (Graph)
GO:BP (IC)
## Warning in instance$preRenderHook(instance): It seems your data is too
## big for client-side DataTables. You may consider server-side processing:
## https://rstudio.github.io/DT/server.html
GO:CC (GOseq)
GO:CC (Graph)
GO:CC (IC)
GO:MF (GOseq)
GO:MF (Graph)
SessionInfo
## ─ Session info ──────────────────────────────────────────────────────────
## setting value
## version R version 3.6.1 (2019-07-05)
## os Ubuntu 16.04.6 LTS
## system x86_64, linux-gnu
## ui X11
## language (EN)
## collate en_US.UTF-8
## ctype en_US.UTF-8
## tz Europe/Zurich
## date 2019-10-03
##
## ─ Packages ──────────────────────────────────────────────────────────────
## package * version date lib
## annotate 1.62.0 2019-05-02 [1]
## AnnotationDbi * 1.46.1 2019-08-20 [1]
## assertthat 0.2.1 2019-03-21 [1]
## backports 1.1.4 2019-04-10 [1]
## BiasedUrn * 1.07 2015-12-28 [1]
## Biobase * 2.44.0 2019-05-02 [1]
## BiocGenerics * 0.30.0 2019-05-02 [1]
## BiocManager 1.30.4 2018-11-13 [1]
## BiocParallel * 1.18.1 2019-08-06 [1]
## biomaRt 2.40.4 2019-08-19 [1]
## Biostrings 2.52.0 2019-05-02 [1]
## bit 1.1-14 2018-05-29 [1]
## bit64 0.9-7 2017-05-08 [1]
## bitops 1.0-6 2013-08-17 [1]
## blob 1.2.0 2019-07-09 [1]
## bookdown 0.13 2019-08-21 [1]
## callr 3.3.2 2019-09-22 [1]
## circlize 0.4.8 2019-09-08 [1]
## cli 1.1.0 2019-03-19 [1]
## clue 0.3-57 2019-02-25 [1]
## cluster 2.1.0 2019-06-19 [1]
## clusterProfiler * 3.13.0 2019-09-26 [1]
## colorspace 1.4-1 2019-03-18 [1]
## ComplexHeatmap 2.0.0 2019-05-02 [1]
## cowplot 1.0.0 2019-07-11 [1]
## crayon 1.3.4 2017-09-16 [1]
## crosstalk 1.0.0 2016-12-21 [1]
## data.table * 1.12.2 2019-04-07 [1]
## DBI 1.0.0 2018-05-02 [1]
## DelayedArray * 0.10.0 2019-05-02 [1]
## desc 1.2.0 2018-05-01 [1]
## devtools 2.2.1 2019-09-24 [1]
## digest 0.6.21 2019-09-20 [1]
## DO.db 2.9 2019-07-24 [1]
## DOSE 3.10.2 2019-06-24 [1]
## dplyr 0.8.3 2019-07-04 [1]
## DT * 0.9 2019-09-17 [1]
## edgeR * 3.26.8 2019-09-01 [1]
## ellipsis 0.3.0 2019-09-20 [1]
## EnrichmentBrowser * 2.14.3 2019-08-03 [1]
## enrichplot * 1.4.0 2019-05-02 [1]
## europepmc 0.3 2018-04-20 [1]
## evaluate 0.14 2019-05-28 [1]
## farver 1.1.0 2018-11-20 [1]
## fastmatch 1.1-0 2017-01-28 [1]
## fgsea 1.10.1 2019-08-21 [1]
## fs 1.3.1 2019-05-06 [1]
## geneLenDataBase * 1.20.0 2019-05-07 [1]
## geneplotter 1.62.0 2019-05-02 [1]
## GenomeInfoDb * 1.20.0 2019-05-02 [1]
## GenomeInfoDbData 1.2.1 2019-07-24 [1]
## GenomicAlignments 1.20.1 2019-06-18 [1]
## GenomicFeatures 1.36.4 2019-07-10 [1]
## GenomicRanges * 1.36.1 2019-09-06 [1]
## GetoptLong 0.1.7 2018-06-10 [1]
## ggforce 0.3.1 2019-08-20 [1]
## ggplot2 3.2.1 2019-08-10 [1]
## ggplotify 0.0.4 2019-08-06 [1]
## ggraph 2.0.0 2019-09-02 [1]
## ggrepel 0.8.1 2019-05-07 [1]
## ggridges 0.5.1 2018-09-27 [1]
## GlobalOptions 0.1.1 2019-09-30 [1]
## glue 1.3.1 2019-03-12 [1]
## GO.db 3.8.2 2019-07-24 [1]
## GOSemSim * 2.10.0 2019-05-02 [1]
## goseq * 1.36.0 2019-05-02 [1]
## gprofiler2 * 0.1.6 2019-08-26 [1]
## graph * 1.62.0 2019-05-02 [1]
## graphlayouts 0.5.0 2019-08-20 [1]
## gridExtra 2.3 2017-09-09 [1]
## gridGraphics 0.4-1 2019-05-20 [1]
## GSEABase 1.46.0 2019-05-02 [1]
## GSVA 1.32.0 2019-05-02 [1]
## gtable 0.3.0 2019-03-25 [1]
## highr 0.8 2019-03-20 [1]
## hms 0.5.1 2019-08-23 [1]
## htmltools 0.3.6 2017-04-28 [1]
## htmlwidgets 1.3 2018-09-30 [1]
## httpuv 1.5.2 2019-09-11 [1]
## httr 1.4.1 2019-08-05 [1]
## igraph 1.2.4.1 2019-04-22 [1]
## IRanges * 2.18.3 2019-09-24 [1]
## jsonlite 1.6 2018-12-07 [1]
## KEGGgraph 1.44.0 2019-05-02 [1]
## knitr 1.25 2019-09-18 [1]
## later 0.8.0 2019-02-11 [1]
## lattice 0.20-38 2018-11-04 [1]
## lazyeval 0.2.2 2019-03-15 [1]
## lifecycle 0.1.0 2019-08-01 [1]
## limma * 3.40.6 2019-07-26 [1]
## locfit 1.5-9.1 2013-04-20 [1]
## magrittr 1.5 2014-11-22 [1]
## MASS 7.3-51.4 2019-04-26 [1]
## Matrix 1.2-17 2019-03-22 [1]
## matrixStats * 0.55.0 2019-09-07 [1]
## memoise 1.1.0 2017-04-21 [1]
## mgcv 1.8-29 2019-09-20 [1]
## mime 0.7 2019-06-11 [1]
## miniUI 0.1.1.1 2018-05-18 [1]
## multiGSEA * 0.11.1 2019-01-29 [1]
## munsell 0.5.0 2018-06-12 [1]
## nlme 3.1-141 2019-08-01 [1]
## org.Mm.eg.db * 3.8.2 2019-09-02 [1]
## pillar 1.4.2 2019-06-29 [1]
## pkgbuild 1.0.5 2019-08-26 [1]
## pkgconfig 2.0.3 2019-09-22 [1]
## pkgload 1.0.2 2018-10-29 [1]
## plotly 4.9.0 2019-04-10 [1]
## plyr * 1.8.4 2016-06-08 [1]
## png 0.1-7 2013-12-03 [1]
## polyclip 1.10-0 2019-04-24 [1]
## prettyunits 1.0.2 2015-07-13 [1]
## processx 3.4.1 2019-07-18 [1]
## progress 1.2.2 2019-05-16 [1]
## promises 1.0.1 2018-04-13 [1]
## ps 1.3.0 2018-12-21 [1]
## purrr 0.3.2 2019-03-15 [1]
## questionr 0.7.0 2018-11-26 [1]
## qvalue 2.16.0 2019-05-02 [1]
## R6 2.4.0 2019-02-14 [1]
## rappdirs 0.3.1 2016-03-28 [1]
## RColorBrewer 1.1-2 2014-12-07 [1]
## Rcpp 1.0.2 2019-07-25 [1]
## RCurl 1.95-4.12 2019-03-04 [1]
## remotes 2.1.0 2019-06-24 [1]
## reshape2 1.4.3 2017-12-11 [1]
## rjson 0.2.20 2018-06-08 [1]
## rlang 0.4.0 2019-06-25 [1]
## rmarkdown 1.15 2019-08-21 [1]
## rmdformats 0.3.5 2019-02-19 [1]
## rprojroot 1.3-2 2018-01-03 [1]
## Rsamtools 2.0.1 2019-09-19 [1]
## RSQLite 2.1.2 2019-07-24 [1]
## rstudioapi 0.10 2019-03-19 [1]
## rtracklayer 1.44.4 2019-09-06 [1]
## rvcheck 0.1.5 2019-10-01 [1]
## S4Vectors * 0.22.1 2019-09-09 [1]
## scales 1.0.0 2018-08-09 [1]
## sessioninfo 1.1.1 2018-11-05 [1]
## shape 1.4.4 2018-02-07 [1]
## shiny 1.3.2 2019-04-22 [1]
## shinythemes 1.1.2 2018-11-06 [1]
## stringi 1.4.3 2019-03-12 [1]
## stringr 1.4.0 2019-02-10 [1]
## SummarizedExperiment * 1.14.1 2019-07-31 [1]
## testthat 2.2.1 2019-07-25 [1]
## tibble 2.1.3 2019-06-06 [1]
## tidygraph 1.1.2 2019-02-18 [1]
## tidyr 1.0.0 2019-09-11 [1]
## tidyselect 0.2.5 2018-10-11 [1]
## triebeard 0.3.0 2016-08-04 [1]
## tweenr 1.0.1 2018-12-14 [1]
## UpSetR 1.4.0 2019-05-22 [1]
## urltools 1.7.3 2019-04-14 [1]
## usethis 1.5.1 2019-07-04 [1]
## vctrs 0.2.0 2019-07-05 [1]
## viridis 0.5.1 2018-03-29 [1]
## viridisLite 0.3.0 2018-02-01 [1]
## withr 2.1.2 2018-03-15 [1]
## writexl 1.1 2018-12-02 [1]
## xfun 0.9 2019-08-21 [1]
## XML 3.98-1.20 2019-06-06 [1]
## xml2 1.2.2 2019-08-09 [1]
## xtable 1.8-4 2019-04-21 [1]
## XVector 0.24.0 2019-05-02 [1]
## yaml 2.2.0 2018-07-25 [1]
## zeallot 0.1.0 2018-01-28 [1]
## zlibbioc 1.30.0 2019-05-02 [1]
## source
## Bioconductor
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## Bioconductor
## CRAN (R 3.6.1)
## Bioconductor
## Bioconductor
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Github (YuLab-SMU/clusterProfiler@de62525)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## Bioconductor
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## Bioconductor
## Bioconductor
## Bioconductor
## Bioconductor
## Bioconductor
## Bioconductor
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## Bioconductor
## Bioconductor
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Github (lianos/multiGSEA@b8747ab)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## local
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
## CRAN (R 3.6.1)
## CRAN (R 3.6.1)
## Bioconductor
##
## [1] /home/ubuntu/R/x86_64-pc-linux-gnu-library/3.6
## [2] /usr/local/lib/R/site-library
## [3] /usr/lib/R/site-library
## [4] /usr/lib/R/library